package cn.iocoder.yudao.module.im.dal.mapper;

import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.im.dal.dataobject.ImUserStatusDO;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import java.util.List;

/**
 * 用户在线状态表 Mapper
 */
@Mapper
public interface ImUserStatusMapper extends BaseMapperX<ImUserStatusDO> {

    /**
     * 查询指定用户的在线状态
     */
    default List<ImUserStatusDO> selectListByUserId(Long userId) {
        // 使用QueryWrapper替代方法引用
        QueryWrapper<ImUserStatusDO> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_id", userId);
        return selectList(queryWrapper);
    }

    /**
     * 查询指定用户在特定设备上的在线状态
     */
    default ImUserStatusDO selectByUserIdAndDeviceId(Long userId, String deviceId) {
        // 使用QueryWrapper替代方法引用
        QueryWrapper<ImUserStatusDO> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_id", userId)
                   .eq("device_id", deviceId);
        return selectOne(queryWrapper);
    }

}